﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ShredTheLog.Api;
using System.ComponentModel.Composition;

namespace ShredTheLog.Themes
{
    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultWindowPart : ISkinPart
    {
        public const string IDString = "Window";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleWindow.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultUserToolTipPart : ISkinPart
    {
        public const string IDString = "UserToolTip";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleUserToolTip.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultMainPart : ISkinPart
    {
        public const string IDString = "Main";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleMain.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultHomePagePart : ISkinPart
    {
        public const string IDString = "HomePage";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleHomePage.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultTextChatPagePart : ISkinPart
    {
        public const string IDString = "TextChatPage";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleTextChatPage.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultUserProfilePart : ISkinPart
    {
        public const string IDString = "UserProfile";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleUserProfile.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultTextChatRoomPart : ISkinPart
    {
        public const string IDString = "TextChatRoom";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleTextChatRoom.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultPrivateChatRequestPart : ISkinPart
    {
        public const string IDString = "PrivateChatRequest";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimplePrivateChatRequest.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultTextChatRoomSpansPart : ISkinPart
    {
        public const string IDString = "TextChatRoomSpans";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleTextChatRoomSpans.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultLogInPart : ISkinPart
    {
        public const string IDString = "LogIn";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleLogIn.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultInputPart : ISkinPart
    {
        public const string IDString = "Input";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleInput.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultSettingsPart : ISkinPart
    {
        public const string IDString = "Settings";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleSettings.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultMessageDialogPart : ISkinPart
    {
        public const string IDString = "MessageDialog";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleMessageDialog.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultErrorPart : ISkinPart
    {
        public const string IDString = "Error";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleError.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultMiscPart : ISkinPart
    {
        public const string IDString = "Misc";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleMisc.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultAboutPart : ISkinPart
    {
        public const string IDString = "About";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleAbout.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultContactListPart : ISkinPart
    {
        public const string IDString = "ContactList";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleContactList.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultUserSearchPart : ISkinPart
    {
        public const string IDString = "UserSearch";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleUserSearch.xaml"); } }
    }

    [Export(typeof(ISkinPart))]
    [PartCreationPolicy(CreationPolicy.Shared)]
    public sealed class DefaultUserSearchConditionsPart : ISkinPart
    {
        public const string IDString = "UserSearchConditions";
        public string ThemeID { get { return null; } }
        public string PartID { get { return IDString; } }
        public Uri PartUri { get { return Helper.GetThemeUri("SimpleUserSearchConditions.xaml"); } }
    }
}
